capture log close
log using immigsocwef_main_rep, replace text
//program:  immigsocwef_main_rep.do
//task:    Replication of main analyses
//project:  Social Welfare Attitudes and Immigrants as a Target Population: Experimental Evidence (Perspectives on Politics)
//author: Jake Haselswerdt \ 2020-6-9

//program setup
version 14
clear all
set linesize 80
macro drop _all
set scheme s1mono
set more off

use immigsocwef_main.dta, clear
global controls "black hispanic otherrace male ideo01 pid7 agecat incomecat educ notbornus parents_notbornus sr2k"

//ASSUMPTIONS

*H1&2 - main experimental effects
prtest benefit_immigonly if econtreat==0, by(culttreat) /*H1 - cultural threat*/
prtest benefit_immigonly if culttreat==0, by(econtreat) /*H2 - fiscal threat*/
collapse (mean) prop_immigonly=benefit_immigonly (sebinomial) se_immigonly=benefit_immigonly, by(treatgroup)
serrbar prop_immigonly se_immigonly treatgroup, scale(1.64) ylabel(0(.05).3) ytitle("Proportion assuming policy will benefit immigrants only") xlabel(1(1)3,valuelabel) xtitle("") xscale(r(.5 3.5)) scheme(s1mono)
graph export Figure2.tif, as(tif) replace
use immigsocwef_main.dta, clear

logit benefit_immigonly i.treatgroup, vce(cluster statenum)
est sto h12

*Figure 3 - heterogeneous effects by race
collapse (mean) prop_immigonly=benefit_immigonly (sebinomial) se_immigonly=benefit_immigonly, by(treatgroup white)
drop if white==.
replace treatgroup=treatgroup+.05 if white==1 
gen uci=prop_immigonly+1.64*se_immigonly
gen lci=prop_immigonly-1.64*se_immigonly
twoway scatter prop_immigonly treatgroup if white==0, ylabel(0(.05).3) ytitle("Proportion assuming policy will benefit immigrants only") xlabel(1(1)3,valuelabel) xtitle("") xscale(r(.5 3.5)) || rcap uci lci treatgroup if white==0 || scatter prop_immigonly treatgroup if white==1 || rcap uci lci treatgroup if white==1, legend(order(3 "White" 1 "Nonwhite") ring(0) pos(10) cols(1)) scheme(s1mono)
graph export Figure3.tif, as(tif) replace
use immigsocwef_main.dta, clear

*H3a&b - anti-immigration scale interaction
logit benefit_immigonly i.treatgroup##c.immigscale, vce(cluster statenum) 
est sto h3ab
logit benefit_immigonly i.treatgroup##c.immigscale ziphisppct2017s $controls, vce(cluster statenum) 
est sto h3abcont

*H4a&b - Hispanic population interaction
logit benefit_immigonly i.treatgroup##c.ziphisppct2017s, vce(cluster statenum) 
est sto h4ab2017
logit benefit_immigonly i.treatgroup##c.ziphisppct2017s immigscale $controls, vce(cluster statenum) 
est sto h4abcont2017 
logit benefit_immigonly i.treatgroup##c.ziphisppct2017s immigscale $controls i.statenum, vce(cluster statenum)
est sto h4abcontfe2017

*Figure 4 - heterogeneous effects by local Hispanic population (non-standardized population variable used for display)
qui logit benefit_immigonly i.treatgroup##c.ziphisppct2017 immigscale $controls, vce(cluster statenum) 
margins, over(treatgroup) at(ziphisppct2017=(0(10)60))
marginsplot, ytitle("Probability of assuming only immigrants benefit") title("") ylabel(0(.1).4) legend(ring(0) pos(12) col(1)) addplot(histogram ziphisppct2017 if ziphisppct2017<=60, legend(order(4 "Control" 5 "Cultural threat prime" 6 "Fiscal threat prime")) below) xtitle("% Hispanic population in ZIP code") scheme(s1mono) level(90) recast(line) recastci(rarea) ci1opts(fcolor(%30)) ci2opts(fcolor(%30)) ci3opts(fcolor(%30))
graph export Figure4.tif, as(tif) replace

*Table 1
esttab h12 h3ab h3abcont h4ab2017 h4abcont2017 h4abcontfe2017 using Table1, replace tab label wrap varwidth(25) b(2) se(2) star(* 0.1 ** 0.05 *** .01) scalars("N Observations" "r2_p Pseudo R-squared") title(Table 1. Logit Models of the Assumption that the Described Policy will Benefit Immigrants and Not Native-Born Americans, with State-Clustered Standard Errors.) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "" \% % ) order(2.treatgroup 3.treatgroup immigscale 2.treatgroup#c.immigscale 3.treatgroup#c.immigscale ziphisppct2017s 2.treatgroup#c.ziphisppct2017s 3.treatgroup#c.ziphisppct2017s) indicate("Controls = $controls" "State fixed effects=*statenum") nomtitles nolz addnote(Hispanic population percentage measured in standard deviations)

//POLICY APPROVAL
reg approval i.benefit_immigonly##c.immigscale i.treatgroup, robust/*H5 supported*/
est sto approval_nocont
reg approval i.benefit_immigonly##c.immigscale i.treatgroup ideo01 sr2k, robust
est sto approval_ideosr
reg approval i.benefit_immigonly##c.immigscale i.treatgroup $controls, robust 
est sto approval_cont

*Figure 5 - assumption/attitude interaction
margins, over(benefit_immigonly) at(immigscale=(0(.2)1)) 
marginsplot, ytitle(Predicted policy approval) title("") legend(ring(0) pos(10) col(1)) recast(line) recastci(rarea) ci1opts(fcolor(%30)) ci2opts(fcolor(%30)) addplot(histogram immigscale, ylabel(0(1)7) legend(order(4 "Immigrant-only assumption" 3 "No immigrant-only assumption")) below) scheme(s1mono) level(90)
graph export Figure5.tif, as(tif) replace 

reg approval i.benefit_bornus##c.immigscale i.benefit_immig i.benefit_immig#c.immigscale i.treatgroup, robust 
est sto approval_sepintnc
reg approval i.benefit_bornus##c.immigscale i.benefit_immig i.benefit_immig#c.immigscale i.treatgroup $controls, robust 
est sto approval_sepint

esttab approval_nocont approval_ideosr approval_cont approval_sepintnc approval_sepint using Table2, replace tab label wrap varwidth(25) b(%12.2g) se(%12.2g) star(* 0.1 ** 0.05 *** .01) scalars("N Observations" "r2 R-squared") title(Table 2. Linear Regression Models of Policy Approval, with Interaction Terms and Robust Standard Errors.) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "" "Anti-immigration scale" "Anti-immigration") order(1.benefit_immigonly immigscale 1.benefit_immigonly#c.immigscale 1.benefit_immig 1.benefit_immig#c.immigscale 1.benefit_bornus 1.benefit_bornus#c.immigscale 2.treatgroup 3.treatgroup ideo01 sr2k) indicate(Controls = black hispanic otherrace male pid7 agecat incomecat educ notbornus parents_notbornus) nomtitles nolz

//APPENDICES

//Appendix D - Full Results with Control Variables
*Table D.1
esttab h3abcont h4abcont2017 h4abcontfe2017 using TableD1, replace tab label wrap varwidth(25) cells("b(star fmt(2)) se(fmt(2) par)") onecell star(* .1 ** .05 *** .01) scalars("N Observations" "r2_p Pseudo R-squared") title(Table D.1. Logit Models of the Assumption that the Described Policy will Benefit Immigrants and Not Native-Born Americans, with Interaction Terms and all Controls Displayed (Table 1 in main text)) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "") order(2.treatgroup 3.treatgroup immigscale 2.treatgroup#c.immigscale 3.treatgroup#c.immigscale ziphisppct2017s 2.treatgroup#c.ziphisppct2017s 3.treatgroup#c.ziphisppct2017s) indicate("State fixed effects=*statenum" ) nomtitles collabels(none) addnotes("State-clustered standard errors in parentheses" "Hispanic population percentage measured in standard deviations" "* p<0.1, ** p<0.05, *** p<.01") nolz

*Table D.2
esttab approval_cont approval_sepint using TableD2, replace tab label wrap varwidth(25) cells("b(star fmt(2)) se(fmt(2) par)") onecell star(* 0.1 ** 0.05 *** .01) scalars("N Observations" "r2 R-squared") title(Table D.2. Linear Regression Models of Policy Approval, with Interaction Terms and Robust Standard Errors (Table 2 in main text)) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "") order(1.benefit_immigonly immigscale 1.benefit_immigonly#c.immigscale 1.benefit_immig 1.benefit_immig#c.immigscale 1.benefit_bornus 1.benefit_bornus#c.immigscale 2.treatgroup 3.treatgroup ideo01 sr2k) nomtitles collabels(none) addnotes("Robust standard errors in parentheses" "* p<0.1, ** p<0.05, *** p<.01") nolz

//Appendix E - Alternative Specifications
*Table E.1 - Immigrants
logit benefit_immig i.treatgroup, vce(cluster statenum)
est sto immig_h12
logit benefit_immig i.treatgroup##c.immigscale ziphisppct2017s $controls, vce(cluster statenum) 
est sto immig_h3ab
logit benefit_immig i.treatgroup##c.ziphisppct2017s immigscale $controls i.statenum, vce(cluster statenum)
est sto immig_h4ab
esttab immig_h12 immig_h3ab immig_h4ab using TableE1, replace tab label wrap varwidth(25) cells("b(star fmt(2)) se(fmt(2) par)") onecell star(* .1 ** .05 *** .01) scalars("N Observations" "r2_p Pseudo R-squared") title(Table E.1. Logit Models of the Assumption that the Described Policy will Benefit Immigrants, with Interaction Terms) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "") order(2.treatgroup 3.treatgroup immigscale 2.treatgroup#c.immigscale 3.treatgroup#c.immigscale ziphisppct2017s 2.treatgroup#c.ziphisppct2017s 3.treatgroup#c.ziphisppct2017s) indicate("State fixed effects=*statenum" ) nomtitles collabels(none) addnotes("State-clustered standard errors in parentheses" "Hispanic population percentage measured in standard deviations" "* p<0.1, ** p<0.05, *** p<.01") nolz 

*Table E.2 - Born in US
logit benefit_bornus i.treatgroup, vce(cluster statenum)
est sto bornus_h12
logit benefit_bornus i.treatgroup##c.immigscale ziphisppct2017s $controls, vce(cluster statenum) 
est sto bornus_h3ab
logit benefit_bornus i.treatgroup##c.ziphisppct2017s immigscale $controls i.statenum, vce(cluster statenum)
est sto bornus_h4ab
esttab bornus_h12 bornus_h3ab bornus_h4ab using TableE2, replace label wrap varwidth(25) cells("b(star fmt(2)) se(fmt(2) par)") onecell star(* .1 ** .05 *** .01) scalars("N Observations" "r2_p Pseudo R-squared") title(Table E.2. Logit Models of the Assumption that the Described Policy will Benefit Native-Born Americans, with Interaction Terms) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "") order(2.treatgroup 3.treatgroup immigscale 2.treatgroup#c.immigscale 3.treatgroup#c.immigscale ziphisppct2017s 2.treatgroup#c.ziphisppct2017s 3.treatgroup#c.ziphisppct2017s) indicate("State fixed effects=*statenum" ) nomtitles collabels(none) addnotes("State-clustered standard errors in parentheses" "Hispanic population percentage measured in standard deviations" "* p<0.1, ** p<0.05, *** p<.01") nolz 

*Table E.3 - Multinomial
mlogit whobencat i.treatgroup, vce(cluster statenum)
est sto mlogit

esttab mlogit using TableE3, replace tab label wrap varwidth(25) b(2) se(2) starlevels(* 0.1 ** 0.05 *** .01) scalars("N Observations" "r2_p Pseudo R-squared") title(Table E.3. Experimental Effects on Beneficiary Assumptions, Multinomial Specification (Neither as Base Outcome)) nonumbers nobaselevels unstack noomitted substitute(=1 "" _ " " "Immigrants    born US" "Immigrants & born US") legend

*Table E.4 - Race Interactions
global controlsnorace "male ideo01 pid7 agecat incomecat educ notbornus parents_notbornus sr2k"
logit benefit_immigonly i.treatgroup##i.white, vce(cluster statenum)
est sto h12r
logit benefit_immigonly i.treatgroup##i.white##c.immigscale, vce(cluster statenum) 
est sto h3abr
logit benefit_immigonly i.treatgroup##i.white##c.immigscale ziphisppct2017s $controlsnorace, vce(cluster statenum) 
est sto h3abcontr

esttab h12r h3abr h3abcontr using TableE4, replace tab label wrap varwidth(25) b(2) se(2) star(* 0.1 ** 0.05 *** .01) scalars("N Observations" "r2_p Pseudo R-squared") title(Table E.4. Logit Models of the Assumption that the Described Policy will Benefit Immigrants and Not Native-Born Americans, by Race, with State-Clustered Standard Errors) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "" \% "%") order(2.treatgroup 3.treatgroup 1.white 2.treatgroup#1.white 3.treatgroup#1.white immigscale 2.treatgroup#c.immigscale 3.treatgroup#c.immigscale  1.white#c.immigscale 2.treatgroup#1.white#c.immigscale 3.treatgroup#1.white#c.immigscale) indicate("Controls = $controlsnorace") nomtitles nolz 

*Table E.5 - Race & Hispanic Population Interactions
logit benefit_immigonly i.treatgroup##i.white##c.ziphisppct2017s, vce(cluster statenum) 
est sto h4ab2017r
logit benefit_immigonly i.treatgroup##i.white##c.ziphisppct2017s immigscale $controlsnorace, vce(cluster statenum) 
est sto h4abcont2017r
logit benefit_immigonly i.treatgroup##i.white##c.ziphisppct2017s immigscale $controlsnorace i.statenum, vce(cluster statenum)
est sto h4abcontfe2017r

esttab h4ab2017r h4abcont2017r h4abcontfe2017r using TableE5, replace tab label wrap varwidth(25) b(2) se(2) star(* 0.1 ** 0.05 *** .01) scalars("N Observations" "r2_p Pseudo R-squared") title(Table E.5. Logit Models of the Assumption that the Described Policy will Benefit Immigrants and Not Native-Born Americans, by Race, with State-Clustered Standard Errors) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "" "\% Hispanic population in ZIP code" "Hispanic population") order(2.treatgroup 3.treatgroup 1.white ziphisppct2017s  2.treatgroup#1.white 3.treatgroup#1.white 2.treatgroup#c.ziphisppct2017s 3.treatgroup#c.ziphisppct2017s 1.white#c.ziphisppct2017s 2.treatgroup#1.white#c.ziphisppct2017s 3.treatgroup#1.white#c.ziphisppct2017s immigscale) indicate("Controls = $controlsnorace" "State fixed effects=*statenum") nomtitles nolz addnote(Hispanic population percentage measured in standard deviations)

*Table E.6 - National Origin Interactions
global controlsnonat "black hispanic otherrace male ideo01 pid7 agecat incomecat educ sr2k"
logit benefit_immigonly i.treatgroup##i.selfparents_notbornus, vce(cluster statenum)
est sto h12n
logit benefit_immigonly i.treatgroup##i.selfparents_notbornus##c.immigscale, vce(cluster statenum) 
est sto h3abn
logit benefit_immigonly i.treatgroup##i.selfparents_notbornus##c.immigscale ziphisppct2017s $controlsnonat, vce(cluster statenum) 
est sto h3abcontn

esttab h12n h3abn h3abcontn using TableE6, replace tab label wrap varwidth(25) b(2) se(2) star(* 0.1 ** 0.05 *** .01) scalars("N Observations" "r2_p Pseudo R-squared") title(Table E.6. Logit Models of the Assumption that the Described Policy will Benefit Immigrants and Not Native-Born Americans, by National Origin, with State-Clustered Standard Errors) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "" "X Anti-immigration scale" "X Anti-immigration" \% "%") order(2.treatgroup 3.treatgroup 1.selfparents_notbornus 2.treatgroup#1.selfparents_notbornus 3.treatgroup#1.selfparents_notbornus immigscale 2.treatgroup#c.immigscale 3.treatgroup#c.immigscale  1.selfparents_notbornus#c.immigscale 2.treatgroup#1.selfparents_notbornus#c.immigscale 3.treatgroup#1.selfparents_notbornus#c.immigscale) indicate("Controls = $controlsnonat") nomtitles nolz 

*Table E.7 - National Origin & Hispanic Population Interaction 
logit benefit_immigonly i.treatgroup##i.selfparents_notbornus##c.ziphisppct2017s, vce(cluster statenum) 
est sto h4ab2017n
logit benefit_immigonly i.treatgroup##i.selfparents_notbornus##c.ziphisppct2017s immigscale $controlsnonat, vce(cluster statenum) 
est sto h4abcont2017n
logit benefit_immigonly i.treatgroup##i.selfparents_notbornus##c.ziphisppct2017s immigscale $controlsnonat i.statenum, vce(cluster statenum)
est sto h4abcontfe2017n

esttab h4ab2017n h4abcont2017n h4abcontfe2017n using TableE7, replace tab label wrap varwidth(25) b(2) se(2) star(* 0.1 ** 0.05 *** .01) scalars("N Observations" "r2_p Pseudo R-squared") title(Table E.7 Logit Models of the Assumption that the Described Policy will Benefit Immigrants and Not Native-Born Americans, by National Origin, with State-Clustered Standard Errors) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "" "\% Hispanic population in ZIP code" "Hispanic population") order(2.treatgroup 3.treatgroup 1.selfparents_notbornus ziphisppct2017s  2.treatgroup#1.selfparents_notbornus 3.treatgroup#1.selfparents_notbornus 2.treatgroup#c.ziphisppct2017s 3.treatgroup#c.ziphisppct2017s 1.selfparents_notbornus#c.ziphisppct2017s 2.treatgroup#1.selfparents_notbornus#c.ziphisppct2017s 3.treatgroup#1.selfparents_notbornus#c.ziphisppct2017s immigscale) indicate("Controls = $controlsnonat" "State fixed effects=*statenum") nomtitles nolz addnote(Hispanic population percentage measured in standard deviations)

*Table E.8 - Alternative ZIP Code Interaction Terms
logit benefit_immigonly i.treatgroup##c.zipforeignpct2017s immigscale $controls i.statenum, vce(cluster statenum)
est sto foreign
logit benefit_immigonly i.treatgroup##c.ziphispforeignpct2017s immigscale $controls i.statenum, vce(cluster statenum) 
est sto hispforeign
logit benefit_immigonly i.treatgroup##c.ziphispgrowth1217s immigscale $controls i.statenum, vce(cluster statenum)
est sto hispchange

esttab foreign hispforeign hispchange using TableE8, replace tab label wrap varwidth(25) cells("b(star fmt(2)) se(fmt(2) par)") onecell star(* .1 ** .05 *** .01) scalars("N Observations" "r2_p Pseudo R-squared") title(Table E.8. Logit Models of the Assumption that the Described Policy will Benefit Immigrants and Not Native-Born Americans, with Alternate ZIP Code Demographic Interaction Terms.) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "" "Hispanic/Latino population growth in ZIP code, 2012-17 (pct. points)" "Hispanic population growth" "X \% foreign-born population" "X % foreign-born" "X \% foreign-born Hispanic population" "X % foreign-born Hispanic" "X Hispanic population growth" "X Hispanic growth" \% %) order(2.treatgroup 3.treatgroup zipforeignpct2017s 2.treatgroup#c.zipforeignpct2017s 3.treatgroup#c.zipforeignpct2017s ziphispforeignpct2017s 2.treatgroup#c.ziphispforeignpct2017s 3.treatgroup#c.ziphispforeignpct2017s ziphispgrowth1217s 2.treatgroup#c.ziphispgrowth1217s 3.treatgroup#c.ziphispgrowth1217s immigscale) indicate("State fixed effects=*statenum" ) nomtitles collabels(none) addnotes("State-clustered standard errors in parentheses" "Population statistics measured in standard deviations" "* p<0.1, ** p<0.05, *** p<.01") nolz 

*Table E.9 - Economic interactions 
global econcontrols "black hispanic otherrace male ideo01 pid7 agecat notbornus parents_notbornus sr2k"
logit benefit_immigonly i.treatgroup##c.unempzip2017 medinczip2017 immigscale $econcontrols, vce(cluster statenum)
est sto unemp
logit benefit_immigonly i.treatgroup##c.medinczip2017 unempzip2017 immigscale $econcontrols, vce(cluster statenum) 
est sto medinc
logit benefit_immigonly i.treatgroup##c.incomecat medinczip2017 unempzip2017 immigscale $econcontrols, vce(cluster statenum)
est sto income
logit benefit_immigonly i.treatgroup##c.educ medinczip2017 unempzip2017 immigscale $econcontrols, vce(cluster statenum)
est sto educ
esttab unemp medinc income educ using TableE9, replace tab label wrap varwidth(25) cells("b(star fmt(2)) se(fmt(2) par)") onecell star(* .1 ** .05 *** .01) scalars("N Observations" "r2_p Pseudo R-squared") title(Table E.9. Logit Models of the Assumption that the Described Policy will Benefit Immigrants and Not Native-Born Americans, with Economic Interaction Terms) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "" ) order(2.treatgroup 3.treatgroup unempzip2017 2.treatgroup#c.unempzip2017 3.treatgroup#c.unempzip2017 medinczip2017 2.treatgroup#c.medinczip2017 3.treatgroup#c.medinczip2017 incomecat 2.treatgroup#c.incomecat 3.treatgroup#c.incomecat educ 2.treatgroup#c.educ 3.treatgroup#c.educ immigscale) indicate("Controls=black hispanic otherrace male ideo01 pid7 agecat notbornus parents_notbornus sr2k" ) nomtitles collabels(none) addnotes("State-clustered standard errors in parentheses" "* p<0.1, ** p<0.05, *** p<.01") nolz

*Table E.10 & Figure E.1 - Approval Model with Categorical Assumption Variable
reg approval b4.whobencat##c.immigscale i.treatgroup, robust
est sto approvalcat
reg approval b4.whobencat##c.immigscale i.treatgroup $controls, robust
est sto approvalcatcont
lincom _b[1.whobencat#c.immigscale]-_b[2.whobencat#c.immigscale]
margins, over(whobencat) at(immigscale=(0(.2)1))
marginsplot, ytitle(Predicted policy approval) title("") recast(line) recastci(rarea) ci1opts(fcolor(%30)) ci2opts(fcolor(%30)) ci3opts(fcolor(%30)) ci4opts(fcolor(%30)) addplot(histogram immigscale, ylabel(0(1)7) legend(order(5 "Immigrants only" 6 "Both immigrants & born in US" 7 "Born in US only" 8 "Neither") below)) scheme(s1mono) level(90) 
graph export FigureE1.png, as(png) replace

esttab approvalcat approvalcatcont using TableE10, replace tab label wrap varwidth(25) b(%12.2g) se(%12.2g) star(* 0.1 ** 0.05 *** .01) scalars("N Observations" "r2 R-squared") title(Table E.10. Linear Regression Models of Policy Approval, with Categorical Assumption Interaction Terms and Robust Standard Errors) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "" "Anti-immigration scale" "Anti-immigration" \& &) order(1.whobencat 2.whobencat 3.whobencat immigscale 1.whobencat#c.immigscale 2.whobencat#c.immigscale 3.whobencat#c.immigscale 2.treatgroup 3.treatgroup ideo01 sr2k) indicate(Controls = black hispanic otherrace male pid7 agecat incomecat educ notbornus parents_notbornus) nomtitles nolz

*Table E.11 - Approval Model with Ideology & Symbolic Racism Interactions
reg approval i.benefit_immigonly##c.immigscale ideo01 i.benefit_immigonly#c.ideo01 sr2k i.benefit_immigonly#c.sr2k i.treatgroup, robust 
est sto extraint
reg approval i.benefit_immigonly##c.immigscale ideo01 i.benefit_immigonly#c.ideo01 sr2k i.benefit_immigonly#c.sr2k i.treatgroup black hispanic otherrace male pid7 agecat incomecat educ notbornus parents_notbornus, robust 
est sto extraintcont

esttab extraint extraintcont using TableE11, replace tab label wrap varwidth(25) b(%12.2g) se(%12.2g) star(* 0.1 ** 0.05 *** .01) scalars("N Observations" "r2 R-squared") title(Table E.11. Linear Regression Models of Policy Approval, with Additional Interaction Terms and Robust Standard Errors) nobaselevels eqlabels(none) interaction(" X ") substitute(=1 "" "Anti-immigration scale" "Anti-immigration" "Symbolic racism scale" "Symbolic racism") order(1.benefit_immigonly immigscale 1.benefit_immigonly#c.immigscale ideo01 1.benefit_immigonly#c.ideo01 sr2k 1.benefit_immigonly#c.sr2k 2.treatgroup 3.treatgroup) indicate(Controls = black hispanic otherrace male pid7 agecat incomecat educ notbornus parents_notbornus) nomtitles nolz

log close
exit
